package util

import "io/fs"

type MyFileInfo struct {
	File  fs.FileInfo
	Size  int64
	Level int
	Path  string
}

func (f MyFileInfo) GetFileSuffix() string {
	if !f.File.IsDir() {
		return GetFileSuffixName(f.Path)
	}
	return ""
}

type FileSort []MyFileInfo

func (n FileSort) Len() int {
	return len(n)
}

func (n FileSort) Less(i, j int) bool {
	if (!n[i].File.IsDir()) && (!n[j].File.IsDir()) {
		return n[i].File.Size() > n[j].File.Size()
	} else if (!n[i].File.IsDir()) && (n[j].File.IsDir()) {
		return false
	} else if (n[i].File.IsDir()) && (!n[j].File.IsDir()) {
		return true
	} else if (n[i].File.IsDir()) && (n[j].File.IsDir()) {
		return n[i].Size > n[j].Size
	}
	return false
}

func (n FileSort) Swap(i, j int) {
	n[i], n[j] = n[j], n[i]
}
